public class Bullet extends Plane{
    Bullet bullet;

    int movedCounts;

    int startX;
    int startY;

    int moveType;

    public int[] getMoveArguements() {
        return moveArguements;
    }

    public void setMoveArguements(int[] moveArguements) {
        this.moveArguements = moveArguements;
    }

    private int[] moveArguements;

    public int getMoveType() {
        return moveType;
    }

    public void setMoveType(int moveType) {
        this.moveType = moveType;
    }

    public void Move()
    {
        switch (moveType)
        {
            case SelfType.BULLET_MOVE_TYPE_CIRCLE:
                int Radius = 100;
                currentX = startX + (int)(Radius * Math.cos(Math.PI / 20 * (startAngle +  movedCounts)));
                currentY = startY  - 2 * movedCounts - (int)(Radius * Math.sin(Math.PI / 20 * (startAngle +  movedCounts)));
                break;

            case SelfType.BULLET_MOVE_TYPE_LINE:
                currentX = startX + moveArguements[0] * movedCounts;
                currentY = startY - movedCounts - moveArguements[1] * movedCounts;
                break;

            case SelfType.BULLET_MOVE_TYPE_LINES:
                currentX = startX + moveArguements[0] * movedCounts;
                currentY = startY  - movedCounts - moveArguements[1] * movedCounts;
                break;
        }
        movedCounts += 2;
    }

    public Bullet(String imagePath)
    {
        super(imagePath);
        movedCounts = 10;
        moveArguements = new int[4];
    }

    public void recordStartPoint()
    {
        startX = currentX;
        startY = currentY;
    }

    public Bullet(Bullet bullet)
    {
        super("");
        this.bullet = bullet;
    }
}
